Massively Multi-user On line applications (MMOs) allow a large number of users to simultaneously use an application such as real-world phenomena simulator, immersive applications, and so on. Similarly, Massively Multi-user On line Games (MMOG) allow a large number of gamers to play simultaneously a video game. MMOs and MMOGs notably rely on computer networks, e.g. the Internet, for allowing the users or gamers to connect to the applications or video games. Throughout this specification the word “application” and “video games” will be understood as to be synonymous, and the terms MMO and MMOG will be indifferently used.
MMO involve a complex and large virtual environments which is desired to be rendered in as much detail as possible, in as close to real time as possible, in order to provide users or game players with a more realistic experience. MMOs are specifically designed for the representation and the manipulation of 3D scenes, and are typically utilized on the end-user's computer for applications that require interactive, sequential, real-time 3D scene generation. As the user interacts with the 3D scene, the computer redraws the 3D representation rapidly enough to convey to the user the sense of a continuous, ongoing reality in which the user is participating. The scene is composed of many separate objects that can be manipulated by user when interacting with the 3D scene. Thus, MMOs involve large data volumes, high data rates and high data complexity is generally required in order to manage large numbers of users participating in real time in a spatially complex and highly detailed virtual environment.
MMOs are typically used for simulating real-world phenomena within computer models; for instance Multi-Body Rigid Dynamics, Human Simulation, Cloth Simulation, Particle Simulation. Simulations require accurate data and algorithms that describe real-world phenomena, such as the physical properties (strength, elasticity, etc.) of the materials used in a manufacturing process and the product to create a simulation of the process and a simulation of a product in use. 3D CAD/CAM (Computer Aided Design, Computer Aided Manufacturing) tools allow to create 3D representations of the product or component parts.
The main and critical requirement of MMOs and MMOGs is to offer a real-time response at anytime to the connected players, regardless of their number, and regardless of the induced computation costs for solving and rendering of the application. Otherwise, the quality of play experience turns poor, decreasing players' interest for the application, limiting interaction when performing collaborative and distributed design review.
MMO's, just like MMOG's, must be scalable to dynamically adapt to the perpetually changing work-load, maintaining thus real-time performance. Scalability notably comprises the number of users that can simultaneously use the application, the number of computing resources for computing the simulations, the number of simultaneous interactions between objects of the 3D scene allowed by the application, and so on. For MMOG's, the number of users may vary significantly, as well as the positional and graphical attributes of all contained dynamic objects. Nevertheless, the surrounding scenery is set once for all and the typology of dynamic objects and the supported behavior classes are predefined, before the game starts. Said otherwise, 3D scenes in MMOGs comprise a number of predetermined characteristics that strongly limit the needs of computing resources; thus improving scalability.
On the contrary, for advanced MMOs, the scenery and population typology of the 3D scene can evolve and enrich, especially while application is running. Indeed, MMOs aim at real-world phenomena, wherein the behaviour of objects is dynamic and excludes predefined behavior classes. Consequently, 3D scenery in MMOs cannot use predefined characteristics as for MMOGs.
The issue of scalability is addressed by MMOG. Such solutions and techniques include Sharding and Zoning. Sharding consists in cloning the world (partially or entirely) and host newly logged users to cope with the workload rise, but with no possible interaction between shards. So by nature, Sharding cannot support unlimited expansion of the virtual world space and population: shards have indeed a physical capacity ceiling dictated by the performance of their assigned processing resources.
Zoning relies on a partition of the virtual world space in so called zones, each of them under the responsibility of a computing resource. Objects/users can navigate from zone to zone. Associated computing resources communicate then dedicated messages on a network to integrate these moving objects in their computational models.
However, in MMOGs, zones evolve quite independently from one another: dynamic objects are simply “teleported” from one of few predefined passage locations of zone “A” to another of few of zone “B”. The issue of optimal load balancing is solved by fencing zones with obstacles or solid walls, by limiting the number of inter-zone passage locations, by limiting the population of objects within each zone at anytime, and by filling the zones with adjusted static décor. In a way, the different regions of the virtual environment are customized to fit the real-time requirements.
However, for advanced physics simulations in MMO's, these simplifications are not acceptable. Indeed, a virtual environment, especially when real-world phenomena are simulated, cannot support an artificial fencing of the scenery which limits possibilities of customizations of the simulated real-world. Especially, all objects should be able to cross border between two or several Zones at any point, and the crossing has to be performed keeping state continuity of the objects (e.g. positions and velocities). Moreover, neighbor Zones usually have mutual interactions through objects they share in their common frontiers (e.g. contact forces) and thus mechanisms such as “teleportation” are inefficient for a realistic simulation. Besides, simulation of common physical behavior require a continuous and repetitive communication between Zones of data according to the considered discipline of Physics, which may be quite complex.
Within this context, there is still a need for an improved method, computer program, and system providing a scalable, seamless, and effective real-time simulation of the physical behavior of an object in a 3D scene divided into a plurality of zones.